﻿
//format strLatLng: "Latitude,Longitude"  \
/*
thêm vào map một trạm xe buýt và add event click cho nó nếu bạn click 2 lần liên tiếp,
khoản thời gian giữa 2 lần click <= 1giay(giống như double click) thì remove trạm đó
nếu lớn hơn >1 thì dc xem là 2 sự kiện click hiện ra thông tin toạ độ của trạm đó 
*/
function addOneMaker(ID, marker) {
        map.setCenter(marker.getPoint(), map.getLevel());
        map.addOverlay(marker);
        VEvent.addListener(marker, 'click', function (obj, latlng) {
            var strHTML = "<div align='center'>Bạn vừa click ở điểm (" + marker.getPoint() + "),Bạn hãy chọn <br/> " +
                          "<input id='btBatDau' type='button' onclick='setPoint(" + marker.getPoint() + ",true)' value='Điểm bắt đầu' />" +
                          "<input id='btKetThuc' type='button' onclick='setPoint(" + marker.getPoint() + ",false)' value='Điểm kết thúc' /><br/>" +
                          "<input id='btKetThuc' type='button' onclick='findBusWay()' value='   Tìm   ' />" +
                          "</div>";
            map.openInfoWindow(marker.getPoint(), strHTML);
        });
}

function _loadAllStation(listAllStation) {

    var length = listAllStation.length;

    for (i = 0; i < length; ++i) {
        if (listAllStation[i].Latitude != 0 && listAllStation[i].Longitude != 0) {
            var pt = new VLatLng(listAllStation[i].Latitude, listAllStation[i].Longitude);
            var marker = new VMarker(pt, new VIcon("Images/bus.png", new VSize(16, 16)));
            arrayBusStop.push(marker);
            addOneMaker(listAllStation[i].IDStation, marker);
        }
    }

}

//Draw 1 line to point start and point end with struct poic{Latitude,Longitude} 
function drawLine(pointStart, pointEnd, color) {

    var polyline = new VPolyline([pointStart, pointEnd], color, 2, color, 2);
    arrayStationToStation.push(polyline);
    map.addOverlay(polyline);
}

// Ve đường đi từ 1 trạm tơi một trạm
//tham số đầu vào là một chuỗi gồm Lat,lng;Lat,lng
function drawWay(arrayWay, color,isRoute) {

    var lengthWay = arrayWay.length;
    if (isRoute == true) {
        var array = arrayWay[0].split(',');
        var pointCenter = new VLatLng(array[0], array[1]);
        map.setCenter(pointCenter, 17);                      
    }
    if (lengthWay > 0) {
        for (w = 0; w < lengthWay - 1; ++w) {
            var arrayStart = arrayWay[w].split(',');
            var arrayEnd = arrayWay[w + 1].split(',');
            var pointStart = new VLatLng(arrayStart[0], arrayStart[1]);
            var pointEnd = new VLatLng(arrayEnd[0], arrayEnd[1]);
            drawLine(pointStart, pointEnd, color);
        }
    }
}
function drawManyWay(arrayWay) {
    map.closeInfoWindow();
////////Set vị trị bắt đầu của tuyến trình/////////////////////
    var temp = arrayWay[0].split(';');
    var pStart = temp[0];
    var array = pStart.split(',');
    var pointCenter = new VLatLng(array[0], array[1]);
    map.setCenter(pointCenter, 17);
    map.openInfoWindow(pointCenter, "Đây là điểm bắt lộ trình của bạn");
//////////////////////////////////////////////////////////////////
    var arrayColor = ["red", "Lime", "blue", "Cyan", " yellow", "GreenYellow", "orange", "Brown", "Pink", "LawnGreen"]; 
    removeRouteExist(); // nếu trước đó đã có tuyến xe tuyến được vẽ ra thì ra phải xoá nó đi để vẽ tuyến mới
    for (i = 0; i < arrayWay.length-1; ++i) {
        drawWay(arrayWay[i].split(';'), arrayColor[i], false);  //vẽ tuyến xe buýt đã chọn trong comnbox
    }
    document.getElementById("content").innerHTML = (arrayWay[arrayWay.length - 1]+"").replace(' , ','<br/>');
}

//conver address to Lng,Lat
function ConvertAddressToLngLat(address, type,imgName) {
    document.getElementById(imgName).src = "Images/waiting.gif";
    var geocoder = new google.maps.Geocoder();

    geocoder.geocode({ 'address': address }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            longLat = results[0].geometry.location.toString().replace('(', '').replace(')', '').split(',', 2);
            if (longLat.length > 0) {
                var position = new VLatLng(longLat[0], longLat[1]);

               
                if (type == 1) {
                    pointA = position;
            

                }
                else {
                    pointB = position;

                }
                document.getElementById(imgName).src = "Images/check.gif";
            }
        }
        else {
            if (address != "")
                alert("Địa chỉ bạn nhập không tồn tại trên bản đồ");
        }
    });
}
